#include "../common/AVLTreeNode.h"

extern AVLTreeNode* rotate(AVLTreeNode*);

/* 平衡二叉搜索树递归插入结点 */
AVLTreeNode* insert(AVLTreeNode* node, int val) {
    if (node == nullptr)
        return new AVLTreeNode(val);
    if (val < node->val)
        node->left = insert(node->left, val);
    else if (val > node->val)
        node->right = insert(node->right, val);
    else
        return node;
    updateHeight(node);
    node = rotate(node);
    return node;
}
